import utils from './getOS'

const native = {
  // get请求方法
  apiClientGet(url, tag) {
    if (utils.appSource() === "ios") {
      let obj = { url, tag };
      window.webkit.messageHandlers.apiClientGet.postMessage(  // 前端与ios 交互
        JSON.stringify(obj)
      );
    } else if (utils.appSource() === "android") {
      window.android
        ? window.android.apiClientGet(url, tag)
        : window.novel.apiClientGet(url, tag);
    }
  },

  // post请求方法
  apiClientPost(url, tag) {
    if (utils.appSource() === "ios") {
      let obj = { url, tag };
      window.webkit.messageHandlers.apiClientPost.postMessage(
        JSON.stringify(obj)
      );
    } else if (utils.appSource() === "android") {
      window.android
        ? window.android.apiClientPost(url, tag)
        : window.novel.apiClientPost(url, tag);
    }
  },
}

/*
- 将需要客户端执行的回调函数暴露全局window下：`window.onApiSuc = this.onApiSuc`，直接在回调函数中获取数据
- 你需要执行客户端的函数：
  - ios: `window.webkit.messageHandlers.method_name.postMessage(options)`
  - android: `window.android ? window.android.method_name(options) : window.novel.method_name(options);`
  - 如果需要从客户端进行数据请求，只需要将你的url地址和你设定一个tag（用来记录是不是你请求的那个数据）传入到某个指定的方法下，我们h5项目中一般使用两个方法：`apiClientGet` 和 `apiClientPost` ; 这使用来请求数据的，一个是get，一个是post；这两个方法是和客户端约定好的，你将url和tag标记传入，然后在 onApiSuc 这个函数中通过你的tag标记取到需要的请求到的数据
*/